package queries;

public class QueriesApartamento {

	public static String CADASTRAR_APARTAMENTO =
		" INSERT INTO apartamento " +
		"            (numero,     " +
		"             bloco,      " +
		"             valor,      " +
		"             status)     " +
		" VALUES     (?,          " +
		"             ?,          " +
		"             ?,          " +
		"             false)      ";

	public static final String ATUALIZA_VLR_APTO =
		" UPDATE apartamento        " +
		" SET    valor = ?          " +
		" WHERE  numero = ?         " +
		"        AND bloco = ?      ";

	public static final String ATUALIZA_APARTAMENTO =
		" UPDATE apartamento        " +
		" SET    status = ?,        " +
		"        valor = ?,         " +
		"        data_inicial = ?,  " +
//		"        primeiro_mes = ?,  " +
		"        CREDITO_DEBITO = ? " +
		" WHERE  numero = ?         " +
		"        AND bloco = ?      ";

	public static final String RECUPERA_QNT_APTOS_PAGARAO_COND_ATUAL =
		" SELECT COUNT(*) AS qnt                               " +
		" FROM   apartamento ap                                " +
		" WHERE  ap.status = 1                                 " +
		"        AND (SELECT COUNT(*)                          " +
		"             FROM   mensalidades mens                  " +
		"             WHERE  ap.numero = mens.numero           " +
		"                    AND ap.bloco = mens.bloco         " +
		"                    AND mens.data_vencimento > ?      " +
		"                    AND mens.eh_aluguel = false) = 0; ";

	public static final String RECUPERA_APTOS_NOVOS =
		" SELECT m.data_vencimento,                " +
		"        c.dataInicio,                     " +
		"        m.numero,                         " +
		"        m.bloco                           " +
		" FROM   mensalidades m,                   " +
		"        contrato c                        " +
		" WHERE  c.numero = m.numero               " +
		"        AND c.bloco = m.bloco             " +
		"        AND m.eh_aluguel = false          " +
		"        AND m.primeiro_mes = true         " +
		"        AND m.ativo = true                " +
		"        AND m.data_vencimento = ?         ";

	public static final String RECUPERA_APTOS_FIM_CONTRATO =
		" SELECT m.data_vencimento,                " +
		"        c.dataFim                         " +
		" FROM   mensalidades m,                   " +
		"        contrato c                        " +
		" WHERE  c.numero = m.numero               " +
		"        AND c.bloco = m.bloco             " +
		"        AND m.eh_aluguel = false          " +
		"        AND c.datafim = m.data_vencimento ";

	public static final String RECUPERA_APTO_FIM_CONTRATO =
		" SELECT m.data_vencimento,                " +
		"        c.dataFim                         " +
		" FROM   mensalidades m,                    " +
		"        contrato c                        " +
		" WHERE  m.numero = ?                      " +
		"        AND m.bloco = ?                   " +
		"        AND c.numero = m.numero           " +
		"        AND c.bloco = m.bloco             " +
		"        AND c.datafim = ?                 " +
		"        AND m.eh_aluguel = true           " +
		"        AND m.ativo = true                ";

	public static final String CADASTRA_MENSALIDADE =
		" INSERT INTO mensalidades      " +
		"             (numero,          " +
		"              bloco,           " +
		"              data_vencimento, " +
		"              eh_aluguel,      " +
		"              primeiro_mes,    " +
		"              ativo)           " +
		" VALUES      (?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?)               ";


	public static final String DELETA_MENSALIDADE =
	" DELETE FROM mensalidades          " +
	" WHERE  numero = ?                 " +
	"       AND bloco = ?               " +
	"       AND data_vencimento = ?     " +
	"       AND eh_aluguel = ?          ";

	public static final String CADASTRA_MENSALIDADE_EXTRA =
		" INSERT INTO mensalidades      " +
		"             (numero,          " +
		"              bloco,           " +
		"              data_vencimento, " +
		"              eh_aluguel,      " +
		"              ativo,           " +
		"              valor)           " +
		" VALUES      (?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?,               " +
		"              ?)               ";

	public static final String RECUPERA_DATAS_PAGAMENTOS =
		" SELECT data_vencimento,          " +
		"        ativo                     " +
		" FROM   mensalidades              " +
		" WHERE  numero = ?                " +
		"        AND bloco = ?             " +
		"        AND eh_aluguel = ?        " +
		"        AND ( ativo = ?           " +
		"               	OR ativo = ? ) " +
		"ORDER BY data_vencimento          ";

	public static final String RECUPERA_CONTRATOS_A_FINALIZAR =
		" SELECT distinct cont.numero,                      " +
		"        cont.bloco,                                " +
		"        p.nome,                                    " +
		"        cont.datafim                               " +
		" FROM   contrato cont,                             " +
		"        pessoa p,                                  " +
		"        mensalidades m                             " +
		" WHERE  p.cpf = cont.cpflocatario                  " +
		"        AND m.numero = cont.numero                 " +
		"        AND m.bloco = cont.bloco                   " +
		"        AND YEAR(cont.datafim) = ?                 " +
		"        AND MONTH(cont.datafim) >= ?               " +
		"        AND MONTH(cont.datafim) <= ?               " +
		"        AND m.eh_aluguel = true                    ";

	public static final String ATUALIZA_STATUS_MENSALIDADE =
		" UPDATE mensalidades            " +
		" SET    ativo = false           " +
		" WHERE  numero = ?              " +
		"        AND bloco = ?           " +
		"        AND data_vencimento = ? " +
		"        AND eh_aluguel = ?      ";

	public static final String ATUALIZA_MENSALIDADES =
		" UPDATE mensalidades                                                               "+
		" SET    numero = ?,                                                                "+
		"        bloco = ?,                                                                 "+
		"        data_vencimento = Adddate(Adddate(data_vencimento, -DAY(data_vencimento))  "+
		"                          , ?)                                                     "+
		" WHERE  numero = ?                                                                 "+
		"        AND bloco = ?                                                              "+
		"        AND eh_aluguel = ?                                                         ";

	public static final String EXISTE_MENSALIDADE_COM_DATA_MAIOR =
		" SELECT 1                        " +
		" FROM   mensalidades             " +
		" WHERE  numero = ?               " +
		"        AND bloco = ?            " +
		"        AND data_vencimento >= ? " +
		"        AND eh_aluguel = ?       ";

	public static final String VERIFICA_CADASTRO_JA_EXISTE =
		" SELECT 1                        " +
		" FROM   mensalidades             " +
		" WHERE  numero = ?               " +
		"        AND bloco = ?            " +
		"        AND data_vencimento = ? " +
		"        AND eh_aluguel = ?       ";

	public static final String POSSUI_MENSALIDADES_ATIVAS =
		" SELECT 1                   " +
		" FROM   mensalidades        " +
		" WHERE  numero = ?          " +
		"        AND bloco = ?       " +
		"        AND eh_aluguel = ?  " +
		"        AND ATIVO = true;   ";

	public static final String REMOVER_MENSALIDADE =
		" DELETE                     " +
		" FROM   mensalidades        " +
		" WHERE  numero = ?          " +
		"        AND bloco = ?       ";

	public static final String IS_PRIMEIRA_MENSALIDADE =
		" SELECT 1                   		" +
		" FROM   mensalidades       		" +
		" WHERE  numero = ?   		        " +
		"        AND bloco = ?       		" +
		"        AND DATA_VENCIMENTO = 	?	" +
		"        AND PRIMEIRO_MES = TRUE	";


}

